#!/bin/bash

# 修复部署问题的脚本

# 确保在正确的目录执行
cd /usr/local/nginx/html/prod/dz || {
  echo "无法切换到应用目录，请检查路径是否正确"
  exit 1
}

# 1. 检查并创建app目录结构
echo "检查app目录结构..."
if [ ! -d "app" ]; then
  echo "创建app目录..."
  mkdir -p app
else
  echo "app目录已存在"
fi

# 2. 检查scheduler.py文件是否存在
if [ ! -f "app/scheduler.py" ]; then
  echo "scheduler.py文件不存在，正在创建..."
  cat > app/scheduler.py << EOF
from flask import current_app
from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime
from logger_config import cron_logger as logger
from app.modules1.Auto import auto_main


def configure_scheduler(app):
    """配置定时任务调度器"""
    # 创建调度器
    scheduler = BackgroundScheduler(timezone='Asia/Shanghai')

    # 添加定时任务（每月1日凌晨1点执行）
    @scheduler.scheduled_job('cron', day=1, hour=1, minute=0)
    def monthly_auto_task():
        """每月自动任务"""
        logger.info("开始执行每月自动任务")
        try:
            with app.app_context():
                success = auto_main()
                if success:
                    logger.info("每月自动任务执行完成")
                else:
                    logger.error("每月自动任务执行失败")
        except Exception as e:
            logger.error(f"执行过程中发生错误: {str(e)}")
            logger.exception("详细错误信息:")

    # 添加测试任务（每1分钟执行一次，方便测试）
    @scheduler.scheduled_job('interval', minutes=1)
    def test_task():
        """测试任务"""
        # 仅在调试模式下执行测试任务
        if app.debug:
            logger.info(f"测试任务执行于: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")

    return scheduler
EOF
  echo "scheduler.py文件创建完成"
else
  echo "scheduler.py文件已存在"
fi

# 3. 安装依赖
echo "安装项目依赖..."
if [ -f "requirements.txt" ]; then
  pip install -r requirements.txt
  echo "依赖安装完成"
else
  echo "requirements.txt文件不存在，请检查"
  exit 1
fi

# 4. 检查main.py文件
if [ ! -f "main.py" ]; then
  echo "main.py文件不存在，请检查部署"
  exit 1
else
  echo "main.py文件已存在"
  # 显示main.py文件内容的前10行，确认导入语句
  echo "main.py文件前10行内容:" 
  head -10 main.py
fi

# 5. 启动应用的命令提示
 echo "\n修复完成，您可以使用以下命令启动应用:\n"
 echo "  gunicorn -w 1 -b 0.0.0.0:9201 main:app"
 echo "\n如果需要在后台运行，可以使用:\n"
 echo "  nohup gunicorn -w 1 -b 0.0.0.0:9201 main:app > logs/app.log 2>&1 &"